3.4 Mathematische Funktionen
In MySQL gibt es eine Vielzahl von vordefinierten Funktionen, die mit Spaltenwerten als Argumenten
eine Berechnung vornehmen und den gewünschten Wert für die Abfrage ausgeben.
Eine Funktion baut sich aus dem Funktionsnamen gefolgt von einem Klammernpaar
mit den Argumenten auf, was dann so aussieht:
funktionsname(argument1, argument2)
Die Funktionsnamen in MySQL müssen in anderen SQL-Dialekten (z.B. ORACLE, MS Access, usw.) nicht genauso benannt sein. Es lohnt sich also immer ein Blick in die Dokumentation der jeweiligen Datenbank.
Um einen Dezimalwert anschließend zu runden, gibt es die Funktion ROUND(X)
SELECT ROUND(9.45) Ergebnis: -> 9 SELECT ROUND(9.5) Ergebnis: -> 9 SELECT ROUND(9.55) Ergebnis: -> 10
ROUND(X,D)
gibt das Argument X gerundet auf eine Zahl mit
D Dezimalstellen zurück. Wenn D = 0 ist hat das Ergebnis keinen Dezimalpunkt oder Bruchteil und entspricht
damit ROUND(X):
SELECT ROUND(1.298, 1) Ergebnis: -> 1.3 SELECT ROUND(1.298, 0) Ergebnis: -> 1
Diese Funktion lässt sich auch sehr gut auf unsere Abfrage mit dem Quadratmeterpreis anwenden. Wie wir im Ergebnis gesehen haben, hatten die Quadratmeterpreise sehr viele Nachkommastellen.
[12]SELECT raum_ID AS Raumnummer, raummiete AS Monatlicher_Mietpreis,
ROUND(raummiete / raumgroesse, 2) AS Quadratmeterpreis
FROM tbl_raum
Als letztes soll hier noch die Funktion für die Bildung des absoluten Betrages
gezeigt werden – ABS(X)
. Sie gibt den absoluten Wert von X zurück:
SELECT ABS(2) Ergebnis: -> 2 SELECT ABS(-32) Ergebnis: -> 32
Übersichten über die vielfältigen Funktionen findet man im MySQL 5.1 Referenzhandbuch
speziell im
Kapitel 12. Funktionen
für die Benutzung in SELECT- und WHERE-Klauseln.